/*
 *Quadil, Quick And Dirty Imaging Library
 *(c) Anguelos Nicolaou 2009
 * This library came to bee after trying to organize varius pieces of
 * code I wrote for document analysis. It is very general and should be usefull
 * for someone who whants to do very elementary stuff with hi speed and no safety
 * (nor its computational overhead).
 */

#ifndef QUADIL_HPP_
#define QUADIL_HPP_

#include <map>
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
#include <cstring>
#include <boost/smart_ptr.hpp>
#include <boost/tuple/tuple.hpp>
#include <cstdarg>

#include "quadil_tune.hpp"


namespace quadil{
typedef unsigned char t_byte;
typedef signed int t_label;
typedef float t_real;
}
#include "equivalence.hpp"
#include "image.hpp"
#include "components.hpp"
namespace quadil{

/*
template <typename T> class Histogram{
	///Storage for the data plus the over and under counters
	int* data;
public:
	const T minVal;
	const T maxVal;
	const double step;
	const nbValues;
	Histogram(T min, T max):minVal(min),maxVal(max),step((maxVal*1.0-minVal)/NBVALUES){
		memset(data,0,sizeof(data));
		underCount=0;
		overCount=0;
	}
	int hash(T val){
		return (val*1.0)
	}
	T unhash(int pos){

	}
	void increment(T val){

	}
};
*/

/*
struct Point{
	int x;
	int y;
};

struct Rectangle{
	int top;
	int left;
	int bottom;
	int right;

};


struct PixelRgba{
	unsigned char r;
	unsigned char g;
	unsigned char b;
	unsigned char a;
	operator bool(){
		return r&&g&&b&&a;
	}
	operator int(){
		return (r<<24)+(g<<16)+(b<<8)+a;
	}
	operator float(){
		return (r<<24)+(g<<16)+(b<<8)+a;
	}
	operator long int(){
		return (r<<24)+(g<<16)+(b<<8)+a;
	}


};


struct PixelArgb{
	unsigned char a;
	unsigned char r;
	unsigned char g;
	unsigned char b;
};

struct PixelRgb{
	unsigned char r;
	unsigned char g;
	unsigned char b;
};
*/


}

#ifdef _CV_H_
#include "opencv_compat.hpp"
#endif
#include "util.hpp"
#include "image_iterators.hpp"
#endif /*QUADIL_HPP_*/
#include "accumulated_image.hpp"
